package com.alks.function.service.boardService;

import com.alks.entity.data.entity.ExportPlanInfo;
import com.alks.entity.data.entity.PcBoard;
import com.alks.entity.data.entity.board.FinanceOtherCharges;
import com.alks.entity.data.response.ResponseInfo;
import com.alks.function.controller.finance.borad.ExportPlan;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;
import java.util.List;

public interface BoardService {
    ResponseInfo uploadBoardFile(MultipartFile file, String invoiceNo);

    ResponseInfo deleteBoardFile(PcBoard pcBoard);

    ResponseInfo queryBoard(ExportPlan exportPlan);

    ResponseInfo queryBoardDetail(ExportPlanInfo exportPlanInfo);

    ResponseInfo editBoardDetail(ExportPlanInfo exportPlanInfo);

    ResponseInfo editBoardSaveData(List<ExportPlan> exportPlan);

    ResponseInfo updateCfmFlag(String detailUid, String invoiceNo, String cfmFlag);

    ResponseInfo otherSaveData(List<ExportPlan> exportPlan);

    ResponseInfo deleteDetail(ExportPlan exportPlan);

    ResponseInfo updateCreditNo(String creditNo, Date deliveryDate, List<ExportPlan> records,Date shipDate);

    ResponseInfo annexList(String invoiceNo);

    void downloadBoard(HttpServletResponse response, ExportPlan exportPlan) throws IOException;

    ResponseInfo loadInSumList(FinanceOtherCharges financeOtherCharges);

    ResponseInfo deleteOtherDetail(List<FinanceOtherCharges> financeOtherCharges);

    ResponseInfo addOtherCharges(List<FinanceOtherCharges> financeOtherCharges);

    ResponseInfo updateDutyAmount(FinanceOtherCharges financeOtherCharges);

    ResponseInfo updateOtherCfmFlag(FinanceOtherCharges financeOtherCharges);

    ResponseInfo updateAoaMonth(List<FinanceOtherCharges> records, Date aoaMonth);

    ResponseInfo importOtherCharges(MultipartFile file);

    void downloadOtherCharges(HttpServletResponse response, FinanceOtherCharges financeOtherCharges) throws IOException;

}
